1.、随机数
- 随机数
1
2
3
4
5>>>import random
>>>random.seed()#设置随机数种子
>>>random.randint(1,100)#生成1-100随机整数
>>>random.uniform(-100,100)#生成-100到100的随机浮点数
>>>round(random.uniform(-100,100),2)#保留两位小数 - 随机数组
1
2
3
4>>>import numpy as np
>>>rand = np.random
>>>rand.randint(1,100,(3,6))#生成3个数组,每个数组由6个1-100的随机整数组成
>>>rand.rand(4)*100#生成1个数组,由4个0-100的随机浮点数组成。rand()返回值为[0,1]
2、Numpy扩展包
ndarray(代表一种特殊的数据结构—n维数组)是numpy的灵魂,Python中的列表和元组内存大、计算时间长。使用数组能优化这些缺点。
2.1 ndarray创建
1 | #导入numpy包 |
2.2 主要特征
- shape(形状) 指定数组是一维数组或多维数组,shape=(2,15)代表2行15列的数组,且
shape=
可以省略。 - dtype(元素类型) 指定数组元素类型,dtype=np.int代表元素为numpy中的int型。ndarray的类型比Python自带的多
2.3 切片/读取
- 规则切片操作 ndarray数组支持像list那样的规则切片操作
- 不规则切片操作 也可以使用Fancy Indexing方法进行不规则切片操作, 格式为
[[index1,index2,index3...]]
, 即方括号内嵌套方括号。比如我想取数组的索引为第1个、第2个、第4个、第5个。1
2
3fancy_index = np.arange(0,100)
fancy_index[[1,2,4,5]]
#[1 2 4 5]
2.4 多维数组的切片
以二维数组为例
1 | #切片的使用,[行进行切片,列进行切片] 即[start:stop:step,start:stop:step] |
2.5浅拷贝和深拷贝
浅拷贝是指拷贝过来的是—引用。
1 | import numpy as np |
深拷贝是指重新申请一个存储空间存放,使用的是 copy()
方法。
1 | import numpy as np |
2.6形状和重构
查看形状,用 属性shape
1 | import numpy as np |
reshape()
, 返回一个符合形状的多维数组,不改变原数组
1 | import numpy as np |
注意:重构的数组必须是n × m = 原数组总元素个数,否则会报错
resize()
改变原数组
1 | import numpy as np |
flatten()
将多维数组变为一维数组,返回值为一维数组,不改变原数组
swapaxes()
进行轴调换,实现转置矩阵。不改变数组本身
1 | import numpy as np |
2.7 属性计算
计算数组的秩,用 ndim
属性
1 | import numpy as np |
计算元素个数,用 size
属性
1 | import numpy as np |
数组的乘法,不改变原数组
1 | import numpy as np |
2.8 插入和删除
np.delete(ArrayName,index)
删除特定元素, 不改变数组np.insert(ArrayName,index,value)
插入特定元素, 不改变数组
1 | import numpy as np |
2.9 缺失值和广播规则
其它
- 数组内排序: 使用
np.sort(ArrayNameaxis )
,返回排序结果不改变数组本身。 其中参数axis则表示按行排序还是按列排序。